package com.lhc.collections;

import java.util.*;

public class SetDemo {


        public static void main(String[] args) {
            testSet03();
        }

        /**
         * Set集合的使用：
         */
        private static  void testSet01(){
            // 创建一个Set实现类的实例对象
            // 多态（父类指代子类）
            // 面向接口的编程
            Set set0 = new HashSet(); // 原始初始化长度为16
            // 向Set集合中添加元素
            set0.add("zhangsan");
            set0.add("lisi");
            set0.add("lisi");
            set0.add(null);
            set0.add("wangwu");
            System.out.println("使用迭代器进行遍历：");
            // 遍历Set集合中的元素，并进行输出
            // 使用迭代器进行迭代遍历
            // 获取HashSet的迭代器对象
            Iterator it =  set0.iterator();
            // 使用hasNext方法判断有没有可以迭代遍历的元素，
            // 如果为true，则说明还有元素，可以继续迭代遍历
            while(it.hasNext()){
                // 使用迭代器的Next方法获取当前遍历的元素对象
                // 因为迭代器是从第一个元素之前的位置开始进行迭代判定
                Object obj = it.next();
                // 输出取出的元素内容
                System.out.println("  "+ (obj == null ?"null":obj.toString()));
            }

            System.out.println("使用增强型的for循环进行变量");
            for (Object obj:set0) {
                String strObj=obj==null?"null":obj.toString();
                System.out.println(" "+strObj);
            }
        }
    private static  void testSet02(){

        Set set0 = new TreeSet();
        set0.add("zhangsan");
        set0.add("lisi");
        set0.add("lisi");
        set0.add("wangwu");
        System.out.println("使用迭代器进行遍历：");
        Iterator it =  set0.iterator();

        while(it.hasNext()){

            Object obj = it.next();

            System.out.println("  "+ (obj == null ?"null":obj.toString()));
        }

        System.out.println("使用增强型的for循环进行变量");
        for (Object obj:set0) {
            String strObj=obj==null?"null":obj.toString();
            System.out.println(" "+strObj);
        }
    }
    private static  void testSet03(){
       Set set=new LinkedHashSet();
       set.add("zhangsan");
       set.add("lisi");
       set.add("lisi");
       set.add("wangwu");
       System.out.println("使用迭代器进行遍历：");
       Iterator it=set.iterator();
       while(it.hasNext())
       {
           Object obj=it.next();
           System.out.println(obj==null?"null":obj.toString());
       }
        System.out.println("使用foreach来遍历：");
        for (Object obj:set) {
            String str=obj==null?"null":obj.toString();
            System.out.println(str);
        }
    }
}
